This invention relates generally to computer use over a network to form a distributed computing platform. More specifically the present invention is a system and method for use of idle time of computers that are connected to a network by users requiring significant computing power without the need for a large scale dedicated processing unit.
When a computer is operating, but not actively performing computations for someone, it is said to be idle. Because of their incredible speed, modem computers are idle most of the time, not only when they are running screen savers, but even when they are being used. For instance, a fast typist working at top speed in a word processor uses only a fraction of the available computational capacity of a desktop PC. Although the time between a typist""s keystrokes seems immeasurably small to humans, it is an eternity when measured in computer time xe2x80x94an eternity filled with unproductive idle computation. Because of this gross underutilization, it is estimated that well over 95% of the world""s computational capacity presently goes to waste.
The present invention is drawn to organization and use of the idle processing power of general-purpose computers to form a distributed computing platform.
It is therefore an objective of the present invention to provide large amounts of computational power to users without the users having to purchase a large computer for such purposes.
It is a further objective of the present invention to harness the idle computational power of many computers and make that power available to clients on an as needed basis.
It is yet another objective of the present invention to allow those who provide computers to be used to have complete access to their computers whenever desired without interruption of personal use.
It is still another objective of the present invention to provide computational power without regard to any specific schedule of computer non-use.
It is yet another objective of the present invention to allow clients who require computational power to specify the characteristics of the power they require.
It is still another objective of the present invention to charge clients that need computational power based upon the power and other characteristics specified by the client.
It is a further objective of the present invention to permit the client to specify the reliability of the computational power required by the client
It is yet another objective of the present invention to allow a provider of a computer to be used in the present invention to specify the amount of RAM and disk space the provider wished to devote to use by others.
It is still another objective of the present invention to push content of various types to providers during the time that providers are supplying excess computational power to tasks of the present invention.
It is yet another objective of the present invention to provide security to both the client and the provider during the running of tasks on providers.
It is still another objective of the present invention to insure that a client cannot access the computational resources of the provider beyond that which is required to run the clients tasks.
It is a further objective of the present invention to permit clients to specify checkpoints in the running of client tasks so that interrupted tasks can be resumed without significant the loss of work.
It is still another objective of the present invention to charge clients for the use of computational power in a flexible way based upon the amount of power to be used and the reliability of the power to be used.
It is yet another objective of the present invention to allow clients to create a virtual cluster of machines of client-definable computational power to run client tasks.
It is thus an overall goal of the present invention to utilize this heretofore underutilized computer power in a novel way as a distributed computing platform to meet the needs of users who require vast computing power but who may not have the financial wherewithal to purchase or lease large mainframe computers or other supercomputing solutions.
Just as email service providers deliver email from one user to another, a business running the system and method of the present invention will disseminate the tasks of a client""s distributed computer program to multiple providers for remote execution. As the remote providers complete tasks, the providers will deliver results back to the originating client. As part of the present invention, an intermediary server delivers computation from providers to clients.
The Internet infrastructure to facilitate the distributed processing of the present invention requires three components:
1) Client software applications for requesting and submitting distributed processing requests and jobs. This is accomplished through a client API that allows client jobs to be coded as independent tasks. The underlying task model, while complex, is hidden from the user;
2) Provider software called a compute engine (CE) for managing the launch and execution of tasks delivered from the intermediary server. The CE runs unobtrusively and securely on the provider""s computer. It processes tasks when the computer is idle and returns results to the server when the provider computer connects to the network which, for example, and without limitation may be the Internet; and
3) A centralized task server for exchanging tasks and results between participants. The centralized task server (CTS) comprises a three-tiered architecture as more fully set forth below and is redundant, fault tolerant and scalable as traffic and clients increase. A task scheduler in the CTS matches power requested to available provider computer resources.
For purposes of this application, the client is the individual or organization that is requesting the data processing services of the present invention. The provider constitutes the plurality of individuals or organizations having excess processor capacity that are offering that capacity to the system of the present invention to process requests from clients.
The flow of the present invention is as follows:
1. Using the client software from their desktop, clients launch their distributed programs, the tasks of which are transported to the centralized task server.
2. Client tasks are pooled at the centralized task server and allocated to provider computers based on a scheduling algorithm that takes into account the characteristics of the provider computer (e.g., processor speed, disk space, amount of RAM, communication speed, percentage of time the provider computer is on-line; percentage of time the provider computer is in use). The CE on the provider computer periodically contacts the server of the present invention to retrieve task assignments or other control messages. Such contact occurs periodically and opportunistically (whenever a network connection is present, for example, when a provider computer has dialed into the Internet) and not just when idle computational power is detected. The invention also allows for an auto-dial capability where the provider computer can specify intervals when the CE can connect to the server. Multiple tasks can be assigned to a CE at a given time. This is done to increase the probability that the CE will always have tasks to execute.
3. When a provider computer""s CE detects that its host computer is idle, it executes tasks that were retrieved from the centralized task server.
4. The results of completed tasks are saved locally. When a connection to the centralized task server exists, statuses of current tasks, and results of previously executed tasks are sent to the centralized server of the present invention.
5. Results are pooled by the centralized task server until the originating client can connect to the server and retrieve them. Note that a special case of this is the case when the client is connected as the job is running. In this case, the client sees the results in xe2x80x9creal timexe2x80x9d. In this fashion, from a client""s perspective, the present invention represents a gigantic virtual computer or distributed computing platform, ideally suited for performing large-scale parallel distributed computation, a function that was formerly the exclusive domain of traditional xe2x80x9cchips-and-solderxe2x80x9d supercomputers. The present invention, however, will perform such computations at a fraction of the cost and on an as-needed basis.
The business model associated with the present invention is to create a new market for idle computation power. A business running the apparatus and method of the present invention will purchase the idle computational power of millions of providers (individual computer owners), and deliver that idle computational power as a single entity to clients (technologists seeking ultra-high-performance computation).
Presently, idle computation has no value whatsoever because the market for computation is inseparable from the market for computers. Users have no means of buying, for example, larger amounts of times on disparate computers to execute a job when the user needs it and not just when a specific computer is available.
With the present invention, however, immense value can be created by a computational intermediary in the same way that financial engineers create value by constructing derivative financial instruments. In effect, the present invention strips excess computational capacity from provider computers, bundles it into quantities suitable for large-scale parallel computations, and delivers it to clients on an as needed basis. Providers benefit by selling a heretofore-wasted resource. Clients benefit because they can inexpensively purchase just the quantity of computation needed, thereby avoiding the normally huge fixed costs associated with purchasing a supercomputer.
The business model of the present invention creates and intermediates the new market in idle computation.
Finally, an applications research and development group will add value by utilizing its superior knowledge of distributed processing to solve high-payoff computational problems. Such a team will spur demand in two ways: First, its purchases of idle computation will stimulate market activity; second, the success of applications and research group will demonstrate to prospective clients the power and cost-effectiveness of idle time processing.